//package com.hzw.icane.ui.view;
//
////import com.youxin.game.R;
//
//import android.content.Context;
//import android.content.Intent;
//import android.content.res.Configuration;
//import android.graphics.PixelFormat;
//import android.graphics.Rect;
//import android.os.Handler;
//import android.util.AttributeSet;
//import android.view.Gravity;
//import android.view.MotionEvent;
//import android.view.View;
//import android.view.ViewGroup;
//import android.view.WindowManager;
//import android.view.animation.Animation;
//import android.view.animation.Animation.AnimationListener;
//import android.view.animation.AnimationUtils;
//import android.widget.ImageView;
//import android.widget.LinearLayout;
//import android.widget.PopupWindow;
//import android.widget.RelativeLayout;
//
//import com.hzw.icane.utils.YXUtil;
//
//public class YXFloatView extends RelativeLayout implements View.OnClickListener, AnimationListener
//{
//	private static final String			TAG			= "FloatView3";
//	private static final int			FLIP_DEST	= 80;
//	private float						mTouchX;
//	private float						mTouchY;
//	private float						mX;
//	private float						mY;
//	private int							mScreenWidth;
//	private int							mScreenHeight;
//	private boolean						mIsMove;
//	private boolean						mIsShow;
//	private boolean						mIsEnd;
//	private WindowManager				mWindowManager;
//	private WindowManager.LayoutParams	mWindowManagerParams;
//	private Context						mContext;
//	private ImageView					mImvIcon;
//	private PopupWindow					mPopWindow;
//	private View						mView;
//	private ImageView					mImvLeft;
//	private ImageView					mImvRight;
//	private LinearLayout				mLayAct;
//	private LinearLayout				mLayMsg;
//	private LinearLayout				mLayGift;
//	private LinearLayout				mLayForum;
//	private LinearLayout				mLayHelp;
//	private LinearLayout				mLayHide;
//	private LinearLayout				mLayContainer;
//	private Animation					mAnimLeftIn;
//	private Animation					mAnimLeftOut;
//	private Animation					mAnimRightIn;
//	private Animation					mAnimRightOut;
//
//
//	public YXFloatView(Context context)
//	{
//		super(context);
//		initView(context);
//	}
//
//	public YXFloatView(Context context, AttributeSet attrs)
//	{
//		super(context, attrs);
//	}
//
//	private void initView(Context context)
//	{
//		mContext = context;
//		mWindowManager = (WindowManager) context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
//		mWindowManagerParams = new WindowManager.LayoutParams();
//		// 设置window type
//		mWindowManagerParams.type = WindowManager.LayoutParams.TYPE_PHONE;
//		// 设置图片格式，效果为背景透明
//		mWindowManagerParams.format = PixelFormat.RGBA_8888;
//		// 设置Window flag
//		mWindowManagerParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
//		// 调整悬浮窗口至左上角，便于调整坐标
//		mWindowManagerParams.gravity = Gravity.LEFT | Gravity.TOP;
//		// 以屏幕左上角为原点，设置x、y初始值
//		mWindowManagerParams.x = 0;
//		mWindowManagerParams.y = mContext.getResources().getDisplayMetrics().heightPixels / 3;
//		// 设置悬浮窗口长宽数据
//		mWindowManagerParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
//		mWindowManagerParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
////		LayoutInflater.from(context).inflate(R.layout.yx_float_lay, this, true);
//		YXUtil.getLayout(context, "yx_float_lay", this, true);
//		mImvIcon = (ImageView) YXUtil.getView(mContext, "imv_icon", this);
//		mView = YXUtil.getLayout(mContext, "yx_float_dialog");
//		mImvLeft = (ImageView) YXUtil.getView(mContext, "imv_left", mView);
//		mImvRight = (ImageView) YXUtil.getView(mContext, "imv_right", mView);
//		mLayContainer = (LinearLayout) YXUtil.getView(mContext, "lay_container", mView);
//		mLayAct = (LinearLayout) YXUtil.getView(mContext, "lay_act", mView);
//		mLayMsg = (LinearLayout) YXUtil.getView(mContext, "lay_msg", mView);
//		mLayGift= (LinearLayout) YXUtil.getView(mContext, "lay_gift", mView);
//		mLayForum = (LinearLayout) YXUtil.getView(mContext, "lay_forum", mView);
//		mLayHelp = (LinearLayout) YXUtil.getView(mContext, "lay_help", mView);
//		mLayHide = (LinearLayout) YXUtil.getView(mContext, "lay_hide", mView);
//
//		mAnimLeftIn = AnimationUtils.loadAnimation(mContext, YXUtil.getAnim(mContext, "yx_float_left_go_anim"));
//		mAnimLeftOut = AnimationUtils.loadAnimation(mContext, YXUtil.getAnim(mContext, "yx_float_left_vs_anim"));
//		mAnimLeftIn.setAnimationListener(this);
//		mAnimLeftOut.setAnimationListener(this);
//
//		mAnimRightIn = AnimationUtils.loadAnimation(mContext, YXUtil.getAnim(mContext, "yx_float_right_go_anim"));
//		mAnimRightOut = AnimationUtils.loadAnimation(mContext, YXUtil.getAnim(mContext, "yx_float_right_vs_anim"));
//		mAnimRightIn.setAnimationListener(this);
//		mAnimRightOut.setAnimationListener(this);
//
//		mLayAct.setOnClickListener(this);
//		mLayMsg.setOnClickListener(this);
//		mLayGift.setOnClickListener(this);
//		mLayForum.setOnClickListener(this);
//		mLayHelp.setOnClickListener(this);
//		mLayHide.setOnClickListener(this);
//
//		mPopWindow = new PopupWindow(mView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, false);
//		mIsMove = false;
//		mIsShow = false;
//	}
//
//	/**
//	 * 显示悬浮窗体
//	 */
//	public void show()
//	{
//		if (!mIsShow)
//		{
//			mScreenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
//			if (mWindowManagerParams.x < (mScreenWidth / 2))
//			{
//				mWindowManagerParams.x = 0;
//			}
//			else
//			{
//				mWindowManagerParams.x = mScreenWidth;
//			}
//			mImvIcon.setVisibility(View.VISIBLE);
//			mWindowManager.addView(this, mWindowManagerParams);
//			mIsShow = true;
//		}
//	}
//
//	/**
//	 * 隐藏悬浮窗体
//	 */
//	public void hide()
//	{
//		if (mIsShow)
//		{
//			if(mPopWindow.isShowing())
//			{
//				mPopWindow.dismiss();
//			}
//
//			mWindowManager.removeView(this);
//			mIsShow = false;
//		}
//	}
//
//	@Override
//	protected void onConfigurationChanged(Configuration newConfig)
//	{
//		super.onConfigurationChanged(newConfig);
//		if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE || newConfig.orientation == Configuration.ORIENTATION_PORTRAIT)
//		{
//			if (mIsShow)
//			{
//				if(mPopWindow.isShowing())
//				{
//					mPopWindow.dismiss();
//				}
//				mScreenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
//				if (mWindowManagerParams.x < (mScreenWidth / 2))
//				{
//					mWindowManagerParams.x = 0;
//				}
//				else
//				{
//					mWindowManagerParams.x = mScreenWidth;
//				}
//				mWindowManager.updateViewLayout(this, mWindowManagerParams); // 刷新显示
//				mImvIcon.setVisibility(View.VISIBLE);
//			}
//		}
//	}
//
//	@Override
//	public boolean onTouchEvent(MotionEvent event)
//	{
//		mScreenWidth = mContext.getResources().getDisplayMetrics().widthPixels;
//		mScreenHeight = mContext.getResources().getDisplayMetrics().heightPixels;
//		// 获取到状态栏的高度
//		Rect frame = new Rect();
//		getWindowVisibleDisplayFrame(frame);
//
//		// 获取相对屏幕的坐标，即以屏幕左上角为原点
//		mX = event.getRawX();
//		mY = event.getRawY() - frame.top;
//
//		switch (event.getAction())
//		{
//			// 捕获手指触摸按下动作
//			case MotionEvent.ACTION_DOWN:
//				mTouchX = event.getX();
//				mTouchY = event.getY();
//				mImvIcon.setImageResource(YXUtil.getDrawable(mContext, "yx_float_icon"));
//				mIsMove = false;
//				break;
//
//			// 捕获手指触摸移动动作
//			case MotionEvent.ACTION_MOVE:
//				updateViewPosition();
//				if (mX > FLIP_DEST && (mScreenWidth - mX) > FLIP_DEST)
//				{
//					mIsMove = true;
//				}
//
//				break;
//
//			// 捕获手指触摸离开动作
//			case MotionEvent.ACTION_UP:
//				if (mIsMove)
//				{
//					mIsMove = false;
//				}
//				else
//				{
//					int[] loc = new int[2];
//					this.getLocationInWindow(loc);
//
//					if (mX <= (mScreenWidth / 2))
//					{
//						mImvRight.setVisibility(View.GONE);
//						mImvLeft.setVisibility(View.VISIBLE);
//						mImvLeft.setOnClickListener(this);
//						mLayContainer.setBackgroundResource(YXUtil.getDrawable(mContext, "yx_float_bg_left"));
//						mPopWindow.showAtLocation(this, Gravity.CENTER, loc[0], loc[1]);
//						mLayContainer.startAnimation(mAnimLeftIn);
//
//					}
//					else
//					{
//						mImvRight.setVisibility(View.VISIBLE);
//						mImvLeft.setVisibility(View.GONE);
//						mImvRight.setOnClickListener(this);
//						mLayContainer.setBackgroundResource(YXUtil.getDrawable(mContext, "yx_float_bg_right"));
//						mPopWindow.showAtLocation(this, Gravity.CENTER, loc[0], loc[1]);
//						mLayContainer.startAnimation(mAnimRightIn);
//					}
//
//				}
//
//				if (mX < (mScreenWidth / 2))
//				{
//					mX = 0;
//				}
//				else
//				{
//					mX = mScreenWidth;
//				}
//				updateViewPosition();
//				mImvIcon.setImageResource(YXUtil.getDrawable(mContext, "yx_float_icon"));
//				mTouchX = mTouchY = 0;
//				break;
//		}
//		return true;
//	}
//
//	private void updateViewPosition()
//	{
//		// 更新浮动窗口位置参数
//		mWindowManagerParams.x = (int) (mX - mTouchX);
//		mWindowManagerParams.y = (int) (mY - mTouchY);
//		mWindowManager.updateViewLayout(this, mWindowManagerParams); // 刷新显示
//	}
//
//	public void onClick(View v)
//	{
//		int id = v.getId();
//		if (id == mImvLeft.getId())
//		{
//			if (mIsEnd)
//			mLayContainer.startAnimation(mAnimLeftOut);
//		}
//		else if (id == mImvRight.getId())
//		{
//			if (mIsEnd)
//			mLayContainer.startAnimation(mAnimRightOut);
//		}
//	}
//
//	private static final int	MSG_LEFT_IN		= 1;
//	private static final int	MSG_LEFT_OUT	= 2;
//	private static final int	MSG_RIGHT_IN	= 3;
//	private static final int	MSG_RIGHT_OUT	= 4;
//
//	private Handler				mHandler		= new Handler()
//	{
//		public void handleMessage(android.os.Message msg)
//		{
//			super.handleMessage(msg);
//			switch (msg.what)
//			{
//				case MSG_LEFT_IN:
//					mLayContainer.setVisibility(View.VISIBLE);
//					mIsEnd = true;
//					break;
//
//				case MSG_LEFT_OUT:
//					if (mPopWindow.isShowing())
//					{
//						mPopWindow.dismiss();
//					}
//					mIsEnd = true;
//					break;
//
//				case MSG_RIGHT_IN:
//					mLayContainer.setVisibility(View.VISIBLE);
//					mIsEnd = true;
//					break;
//
//				case MSG_RIGHT_OUT:
//					if (mPopWindow.isShowing())
//					{
//						mPopWindow.dismiss();
//					}
//					mIsEnd = true;
//					break;
//			}
//
//		};
//	};
//
//	@Override
//	public void onAnimationEnd(Animation animation)
//	{
//		if (animation == mAnimLeftIn)
//		{
//			mHandler.sendEmptyMessage(MSG_LEFT_IN);
//			mImvIcon.setVisibility(View.INVISIBLE);
//		}
//		else if (animation == mAnimLeftOut)
//		{
//			mHandler.sendEmptyMessage(MSG_LEFT_OUT);
//			mImvIcon.setVisibility(View.VISIBLE);
//		}
//		else if (animation == mAnimRightIn)
//		{
//			mHandler.sendEmptyMessage(MSG_RIGHT_IN);
//			mImvIcon.setVisibility(View.INVISIBLE);
//		}
//		else if (animation == mAnimRightOut)
//		{
//			mHandler.sendEmptyMessage(MSG_RIGHT_OUT);
//			mImvIcon.setVisibility(View.VISIBLE);
//		}
//	}
//
//	@Override
//	public void onAnimationRepeat(Animation animation)
//	{
//
//	}
//
//	@Override
//	public void onAnimationStart(Animation animation)
//	{
//		mIsEnd = false;
//		if (animation == mAnimLeftIn)
//		{
//			mImvLeft.setImageResource(YXUtil.getDrawable(mContext, "yx_float_icon_expand"));
//		}
//		else if (animation == mAnimLeftOut)
//		{
//			mImvLeft.setImageResource(YXUtil.getDrawable(mContext, "yx_float_icon"));
//		}
//		else if (animation == mAnimRightIn)
//		{
//			mImvRight.setImageResource(YXUtil.getDrawable(mContext, "yx_float_icon_expand"));
//		}
//		else if (animation == mAnimRightOut)
//		{
//			mImvRight.setImageResource(YXUtil.getDrawable(mContext, "yx_float_icon"));
//		}
//	}
//}
